The present invention generally relates to wireless communication systems. In particular, the invention relates to time division duplex (TDD) and frequency division duplex (FDD) systems which use orthogonal variable spreading factor (OVSF) codes and Hadamard codes to spread data for transmission and includes an improved system for generating such codes.
Many types of communication systems, such as FDD and TDD communication systems, use one or more families of pseudorandom codes to spread data for transmission. These codes are used in various places throughout the communication system in both the transmitter and the receiver. Several of the more commonly used families of codes include OVSF codes and Hadamard codes.
FIG. 1 shows a code tree of OVSF codes that preserve the orthogonality between different channels. The OVSF codes can be defined using the code tree of FIG. 1, whereby the channelization codes are uniquely described as Cch,SF,k, and where SF is the spreading factor of the code and k is the code number 0≦k≦SF−1. Each level in the code tree defines channelization codes of length SF, corresponding to a spreading factor of SF in FIG. 1.
The generation method for the channelization code is defined as:
            c              ch        ,        1        ,        0              =    1    ,          ⁢            [                                                  c                              ch                ,                2                ,                0                                                                                        c                              ch                ,                2                ,                1                                                        ]        =                  [                                                            c                                  ch                  ,                  1                  ,                  0                                                                                    c                                  ch                  ,                  1                  ,                  0                                                                                                        c                                  ch                  ,                  1                  ,                  0                                                                                    -                                  c                                      ch                    ,                    1                    ,                    0                                                                                      ]            =                                    [                                                            1                                                  1                                                                              1                                                                      -                    1                                                                        ]                    ⁢                                          [                                                                      C                                      ch                    ,                                          2                      ⁢                                              (                                                  n                          +                          1                                                )                                                              ,                    0                                                                                                                        C                                      ch                    ,                                          2                      ⁢                                              (                                                  n                          +                          1                                                )                                                              ,                    1                                                                                                                        C                                      ch                    ,                                          2                      ⁢                                              (                                                  n                          +                          1                                                )                                                              ,                    2                                                                                                                        C                                      ch                    ,                                          2                      ⁢                                              (                                                  n                          +                          1                                                )                                                              ,                    3                                                                                                      ⋮                                                                                      C                                      ch                    ,                                          2                      ⁢                                              (                                                  n                          +                          1                                                )                                                              ,                                                                  2                        ⁢                                                  (                                                      n                            +                            1                                                    )                                                                    -                      2                                                                                                                                            C                                      ch                    ,                                          2                      ⁢                                              (                                                  n                          +                          1                                                )                                                              ,                                                                  2                        ⁢                                                  (                                                      n                            +                            1                                                    )                                                                    -                      1                                                                                                    ]                =                  [                                                                      C                                      ch                    ,                                          2                      n                                        ,                    0                                                                                                C                                      ch                    ,                                          2                      n                                        ,                    0                                                                                                                        C                                      ch                    ,                                          2                      n                                        ,                    0                                                                                                -                                      C                                          ch                      ,                                              2                        n                                            ,                      0                                                                                                                                            C                                      ch                    ,                                          2                      n                                        ,                    1                                                                                                C                                      ch                    ,                                          2                      n                                        ,                    1                                                                                                                        C                                      ch                    ,                                          2                      n                                        ,                    1                                                                                                -                                      C                                          ch                      ,                                              2                        n                                            ,                      1                                                                                                                          ⋮                                            ⋮                                                                                      C                                      ch                    ,                                          2                      n                                        ,                                                                  2                        n                                            -                      1                                                                                                                    C                                      ch                    ,                                          2                      n                                        ,                                                                  2                        n                                            -                      1                                                                                                                                            C                                      ch                    ,                                          2                      n                                        ,                                                                  2                        n                                            -                      1                                                                                                                    -                                      C                                          ch                      ,                                              2                        n                                            ,                                                                        2                          n                                                -                        1                                                                                                                          ]                    
The rightmost value in each channelization code word corresponds to the chip transmitted first in time. The OVSF code to be used is a function of the spreading factor, the number of channels being utilized and the channel type.
One method for generating OVSF codes is to utilize the mathematical description above. However, such matrix manipulations are computationally expensive and require extremely fast and expensive hardware to perform. Additionally, when a computational unit is fixed in hardware for such a purpose, it generally cannot be utilized for other purposes. This adds to system complexity and results in an overall system design that is unnecessarily complex and expensive.
Accordingly, a convenient means is needed to quickly and efficiently generate OVSF codes. It would also be desirable for such means to be adaptable to the generation of other types of codes, such as Hadamard sequences.